#include "big_uint.h"
#include <iostream>

//using integer = gueb::big_uint<200, uint32_t>;
using integer = gueb::big_uint<200>;

int main()
{
    integer a = "1030507090103050709010305070901030507090";
    integer b = "0204060800020406080002040608000204060800";
    std::cout << a + b << std::endl;
    std::cout << a * b << std::endl;
    std::cout << integer::mul_high_low(a, b) << std::endl;
    std::cout << (a * b).str_hex() << std::endl;
    std::cout << integer::mul_high_low(a, b).str_hex() << std::endl;

    integer c = 0;
    c = ~c;
    integer d = -1;
    std::cout << "c == d: " << (c == d) << std::endl;
    std::cout << "c > 0: " << (c > 0) << std::endl;
    std::cout << "d > 0: " << (d > 0) << std::endl;
    std::cout << c.str_hex() << std::endl;
    std::cout << d.str_hex() << std::endl;
    return 0;
}
